python大作战之介绍类属性、实例属性、类方法、静态方法、实例方法

大家好,今天跟大家再次介绍下类属性、实例属性、类方法、静态方法、实例方法,(主要是小白的我又加深的理解了一下,大神可以飘过,哈哈),直接上代码:

class Animal(object):
    color='蓝色'#这里就是类属性,也可以定义为全局变量
    def __init__(self,name,age):
        global color#这个global方法就是类似共享全局变量的含义
        self.name=name
        self.age=age
    @classmethod#被classmethod装饰的是类方法,能被类对象和实例对象同时调用
    def test(self):
        print('这是test函数')
    def test1(self):#这是Animal类的实例方法,只能被实例对象调用
        print('这是test1函数')
    @staticmethod
    def test2():#当Animal类的实例方法被staticmethod修饰时,那么这个实例方法使用的前提:表示既不需要使用实例对象,也不需要使用类对象
        print('这是test3函数')
    def color_fjh(self):
        print('这个颜色是{}'.format(self.color))
a=Animal('拉布拉多',2)
print('实例对象属性为:{}'.format(a.name))
print('实例对象属性为:{}'.format(a.age))
print('类属性为:{}'.format(Animal.color))
print(a.color)
a.test()
try:
    Animal.test()#如果类对象想要调用,那么需要将Animal类中的实例方法test被classmethod修饰
except TypeError as e:
    print('类对象不能调类方法吗?')
a.color='粉色'#赋值给实例对象的方法,在不定义global前提下,是不能改变类属性的,只是间接的增加了一个实例属性
print(a.color)
print(Animal.color)
#可以使用实例对象和类对象同时调用被staticmethod修饰的静态方法
a.test2()
Animal.test2()
a.color_fjh()

运行结果:

实例对象属性为:拉布拉多
实例对象属性为:2
类属性为:蓝色
蓝色
这是test函数
这是test函数
粉色
蓝色
这是test3函数
这是test3函数
这个颜色是粉色

最后一个为什么输出粉色,因为对象做了一个增加实例属性的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值